package Traverse.traverse2018;
//����������ǵݹ�ʵ��
import domain.TreeNode;

import java.util.Stack;

public class PreOrderTraverse3 {
	public static void main(String[] args) {
		TreeNode node1=new TreeNode(1);
		TreeNode node2=new TreeNode(2);
		TreeNode node3=new TreeNode(3);
		TreeNode node4=new TreeNode(4);
		TreeNode node5=new TreeNode(5);
		TreeNode node6=new TreeNode(6);
		TreeNode node7=new TreeNode(7);
		node1.left=node2;
		node1.right=node3;
		node2.left=node4;
		node2.right=node5;
		node3.left=node6;
		node3.right=node7;
		node4.left=node4.right=null;
		node5.left=node4.right=null;
		node6.left=node4.right=null;
		node7.left=node4.right=null;
		preOrderTraverse(node1);
	}
    public static void preOrderTraverse(TreeNode root){
    	if(root==null){
    		return;
    	}
        Stack<TreeNode> stack = new Stack<TreeNode>();
        stack.add(root);
        TreeNode p = null;
        while(!stack.isEmpty()){
        	p = stack.pop();
        	if(p.right!=null){
        		stack.add(p.right);
        	}
        	System.out.println(p.val);
        	if(p.left!=null){
        		stack.add(p.left);
        	}
        }
        
    }
}
